<?php
/**
 * 清理未使用的配置文件和脚本
 */

// 基础目录
$baseDir = __DIR__ . '/../../webman';
$backupDir = __DIR__ . '/backups/config_cleanup_' . date('Y-m-d_H-i-s');

if (!is_dir($backupDir)) {
    mkdir($backupDir, 0755, true);
}

echo "📁 基础目录: $baseDir\n";
echo "📦 备份目录: $backupDir\n";

// 需要清理的文件列表（相对于 webman 目录）
$filesToClean = [
    // 未使用的自定义配置文件
    'config/xapptool.php',
    
    // 调试和测试脚本
    'debug_regex.php',
    'test_models_simple.php',
    'test_models_direct.php',
    'test_models_final.php',
    'verify_models.sh',
    
    // 早期的表创建脚本（已被迁移替代）
    'create_export_table.php',
    'create_export_table_simple.php',
];

$cleanedFiles = [];

foreach ($filesToClean as $file) {
    $sourcePath = $baseDir . '/' . $file;
    
    if (file_exists($sourcePath)) {
        echo "\n🔍 处理文件: $file\n";
        
        // 创建备份目录结构
        $backupSubDir = dirname($backupDir . '/' . $file);
        if (!is_dir($backupSubDir)) {
            mkdir($backupSubDir, 0755, true);
        }
        
        // 备份文件
        $backupPath = $backupDir . '/' . $file;
        if (copy($sourcePath, $backupPath)) {
            echo "✅ 备份成功: $file\n";
            
            // 删除原文件
            if (unlink($sourcePath)) {
                echo "✅ 删除成功: $file\n";
                $cleanedFiles[] = $file;
            } else {
                echo "❌ 删除失败: $file\n";
            }
        } else {
            echo "❌ 备份失败: $file\n";
        }
    } else {
        echo "⚠️  文件不存在: $file\n";
    }
}

// 移动清理脚本到 maintenance 目录
$maintenanceDir = __DIR__ . '/maintenance';
if (!is_dir($maintenanceDir)) {
    mkdir($maintenanceDir, 0755, true);
}

echo "\n📁 移动清理脚本到 maintenance 目录...\n";

$scriptsToMove = [
    'cleanup_backend_files.php',
    'cleanup_frontend_files.php',
    'cleanup_frontend_files_targeted.php',
    'backup_and_remove_unused_tables.php',
];

$movedScripts = [];

foreach ($scriptsToMove as $script) {
    $sourcePath = __DIR__ . '/' . $script;
    $targetPath = $maintenanceDir . '/' . $script;
    
    if (file_exists($sourcePath)) {
        if (copy($sourcePath, $targetPath)) {
            unlink($sourcePath);
            echo "✅ 移动脚本: $script\n";
            $movedScripts[] = $script;
        } else {
            echo "❌ 移动失败: $script\n";
        }
    }
}

echo "\n🎉 配置文件和脚本清理完成！\n";
echo "📊 清理统计:\n";
echo "- 清理文件数: " . count($cleanedFiles) . "\n";
echo "- 移动脚本数: " . count($movedScripts) . "\n";

// 生成恢复脚本
$restoreScript = $backupDir . '/restore_files.php';
$restoreContent = "<?php
/**
 * 恢复被清理的配置文件和脚本
 * 运行此脚本可以恢复所有被清理的文件
 */

\$backupDir = __DIR__;
\$baseDir = __DIR__ . '/../../webman';
\$filesToRestore = " . var_export($cleanedFiles, true) . ";

foreach (\$filesToRestore as \$file) {
    \$sourcePath = \$backupDir . '/' . \$file;
    \$targetPath = \$baseDir . '/' . \$file;
    
    if (file_exists(\$sourcePath)) {
        // 创建目标目录
        \$targetDir = dirname(\$targetPath);
        if (!is_dir(\$targetDir)) {
            mkdir(\$targetDir, 0755, true);
        }
        
        if (copy(\$sourcePath, \$targetPath)) {
            echo \"✅ 恢复成功: \$file\\n\";
        } else {
            echo \"❌ 恢复失败: \$file\\n\";
        }
    } else {
        echo \"⚠️  备份文件不存在: \$file\\n\";
    }
}

echo \"\\n🎉 配置文件恢复完成！\\n\";
";

file_put_contents($restoreScript, $restoreContent);
echo "🔄 恢复脚本已生成: restore_files.php\n";

// 生成清理清单
$cleanupList = $backupDir . '/cleanup_summary.md';
$cleanupContent = "# 配置文件和脚本清理清单

## 清理时间
" . date('Y-m-d H:i:s') . "

## 备份目录
$backupDir

## 清理文件列表
";

foreach ($cleanedFiles as $file) {
    $cleanupContent .= "- ✅ $file\n";
}

foreach ($movedScripts as $script) {
    $cleanupContent .= "- 📁 移动脚本: $script\n";
}

$cleanupContent .= "
## 清理原因
1. xapptool.php - 未在代码中使用的自定义配置文件
2. 调试和测试脚本 - 开发阶段使用，生产环境不需要
3. 早期表创建脚本 - 已被统一迁移替代
4. 清理脚本移动到 maintenance 目录，便于管理

## 维护目录
清理脚本已移动到: $maintenanceDir

## 恢复方法
如需恢复这些文件，请运行:
```bash
php $restoreScript
```

## 注意事项
- 清理前已进行完整备份
- 清理的文件可以在备份目录中找到
- 恢复脚本可以一键恢复所有文件
- 清理脚本已移动到 maintenance 目录便于管理
";

file_put_contents($cleanupList, $cleanupContent);
echo "📋 清理清单已生成: cleanup_summary.md\n";